在學習 Kotlin 語言的過程中,發現迴圈的用法有很多很方便的地方,這邊將常用的做個整理。
Kotlin 中基本的 for 迴圈寫法可以用兩個 . 來表達
for (i in 0 .. 5){
println(i)
}
輸出結果為:
0
1
2
3
4
5
使用 downTo 關鍵字還能夠反向執行,如下的範例:
for (i in 5 downTo 0){
println(i)
}
輸出結果
5
4
3
2
1
0
除了用 ..
來表示幾到幾之外,Kotlin 還可以使用 until
關鍵字來表達,但是要注意 until
只會執行到目標數字 - 1 (不包含本身)
如以下的範例
for (i in 0 until 5) {
println(i)
}
輸出結果為:
0
1
2
3
4
假設今天要輸出一個 ArrayList 中的成員,一般可以這樣寫
val list = arrayListOf<Int>(1, 2, 3, 4, 5)
for (i in 0 .. list.size - 1){
println(list[i])
}
輸出結果為:
1
2
3
4
5
現在換成 until
的寫法
val list = arrayListOf<Int>(1, 2, 3, 4, 5)
for (i in 0 until list.size){
println(list[i])
}
輸出結果為:
1
2
3
4
5
輸出結果都是一樣的,但是會讓程式比較易讀
在 for 迴圈中,可以使用 step
來跳過幾次索引,範例如下
for (i in 0 .. 10 step 2 ){
println(i)
}
得到輸出結果:
0
2
4
6
8
10
Kotlin 還支援將字元當作範圍來建立迴圈
for (i in 'a' .. 'g'){
println(i)
}
輸出結果:
a
b
c
d
e
f
g
一樣支援 step
for (i in 'a' .. 'g' step 2){
println(i)
}
輸出結果:
a
c
e
g
要遍歷一個集合,可以直接放到 for 迴圈中 in 一個集合
val list = arrayListOf<Int>(1, 2, 3, 4, 5)
for(item in list){
println(item)
}
或是使用 foreach
來達成
list.forEach { item->
println(item)
}
如果需要獲得索引的資訊,可以在 for 迴圈中使用 indices
for (i in list.indices) {
println(list[i])
}
輸出結果都是:
1
2
3
4
5
以上這次開發中比較常使用到的迴圈用法。